from flask_wtf import Form
from flask_wtf import TextField
from flask_wtf import SelectField
from flask_wtf import SelectMultipleField
from flask_wtf import widgets

from app.validators import Required
from app.validators import length



class FaseBuscar(Form):
    """
    #===========================================================================
    # Formulario de busqueda de fases
    #===========================================================================
    """
    id = TextField()
    nombre = TextField([(Required()) and length(min=0, max=50)])
    estado = TextField([(Required()) and length(min=0, max=20)])   
    otros = TextField()
    
    
class FaseCrear(Form):
    """
    #==============================
    # Formulario para la creacion
    #=============================
    """
    
    nombre = TextField('Nombre de fase:', [(Required()) and length(min=0, max=50)])
    estado = TextField('Estado de fase:', [(Required()) and length(min=0, max=20)])
    fechainicio = TextField('Fecha Inicio:')
    fechafin = TextField('Fecha Fin:')
   
class FaseModificar(Form):
    """
    #==============================
    # Formulario para modificar una fase
    #=============================
    """    
    nombre = TextField('Nombre de fase:', [(Required()) and length(min=0, max=50)])
    estado = SelectField('Estado:')
    fechainicio = TextField('Fecha Inicio:')
    fechafin = TextField('Fecha Fin:')
    

class FaseConsultar(Form):
    """
    #======================================
    # Formulario para la consulta de fases
    #======================================    """
    
    nombre = TextField('Nombre de fase:')
    estado = TextField('Estado de fase:')
    posicion = TextField('Posicion de fase')
    fechainicio = TextField('Fecha Inicio:')
    fechafin = TextField('Fecha Fin:')
    tipoItems =  SelectMultipleField('TipoItems de la fase seleccionada:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    items =  SelectMultipleField('Items de la fase seleccionada:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    proyecto = TextField()
    
    
class FaseSeleccionar(Form):
    fases =  SelectMultipleField('Fases:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.RadioInput())
    

class FaseImportar(Form):
    """
    #===========================================================================
    # Formulario para la creacion a partir de la importacion de fase
    #===========================================================================
    """
    
    nombre = TextField('Nombre de fase:', [(Required()) and length(min=0, max=50)])
    estado = TextField('Estado de fase:')
    fechainicio = TextField('Fecha Inicio:')
    fechafin = TextField('Fecha Fin:')
    tipoItems =  SelectMultipleField('TipoItems de la fase seleccionada:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    items =  SelectMultipleField('Items de la fase seleccionada:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    fase = TextField()
    
    
